package com.suos.conf;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.Min;

/**
 * des : 配置文件类
 *
 * @author : MisShi
 * @since : 2021-08-24 11:41:31
 */
@Data
@Validated
@Configuration("suOsProperties")
@ConfigurationProperties(prefix = "sugar.oshi")
public class SuOsProperties {

    /**
     * 分布式设置:系统是否为分布式
     */
    private boolean distributed = false;

    /**
     * 分布式设置:否为服务端(分布式)
     */
    private boolean orServer = false;

    /**
     * 分布式设置:分布式中项目唯一标识
     */
    private String unbid = "app";

    /**
     * 分布式设置:分布式中项目是否需要服务器信息
     */
    private boolean orNeed = true;


    /**
     * 分布式设置:分布式中Netty客户端注册地址
     */
    private String registerUrl;

    /**
     * CPU-计算时间间隔(毫秒)
     */
    @Min(value = 0, message = "请检查:sugar.oshi.wait-second")
    private int waitSecond = 1000;

    /**
     * Netty 重试间隔(秒)
     */
    @Min(value = 1, message = "请检查:sugar.oshi.recon-inter:")
    private int reconInter = 3;

    /**
     * Netty 重试次数
     */
    @Deprecated
    @Min(value = 1, message = "请检查:sugar.oshi.recon-number:")
    private int reconNumber = 3;


}
